<%--
  Created by IntelliJ IDEA.
  User: Teacher
  Date: 2025/3/25
  Time: 16:01
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>四大作用域</title>
</head>
<body>
<%
    // 模拟Servlet存储数据的过程
//    pageContext.setAttribute("msg","Hello pageContext");
//    request.setAttribute("msg","Hello request");
//    session.setAttribute("msg","Hello session");
//    application.setAttribute("msg","Hello application");
    // 转发到第二个页面
    // 当通过转发跳转时,就表示不在一个同一个页面,但是请求相同
//    request.getRequestDispatcher("/jsp/scope2.jsp").forward(request,response);
    // 重定向到第二个页面
    // 当通过重定向跳转时,就表示不是同一个请求了
    // 即:此时不是同一个页面,也不是同一个请求
    // 此时pageContext与request作用域数据丢失
    // 但是session与application作用域数据仍然存在
//    response.sendRedirect(request.getContextPath()+"/jsp/scope2.jsp");
    // 此时关闭浏览器,表示会话结束,重新打开浏览器直接访问第二个页面,表示两者不是同一个会话了
    // 因此,session作用域数据丢失
    // 重启服务器之后,会重新生成新的application对象,这时候直接访问第二个页面,发现application数据丢失
    // 因为两者不是同一个应用了
%>
<h1>第一个页面</h1>
pageContext:<%=pageContext.getAttribute("msg")%><br>
request:<%=request.getAttribute("msg")%><br>
session:<%=session.getAttribute("msg")%><br>
application:<%=application.getAttribute("msg")%><br>
</body>
</html>
